#include <iostream>
#include <cassert>


//деление по mod k
int div_mod(int a, int b, int k) {
    assert( (b % k) != 0); // Divide by zero

    switch ( k ) {
        case 2:
            return a % k;
        case 3:
            if ( b == 1 )
                return a % k;
            if ( b == 2 )
                return (a * 2) % k;
    }
    assert(false); // Not implemented
    return 0;
}

//вычитание по mod k
int sub_mod(int a, int b, int k) {
 int c=a-b;

  while(c<0){c=c+k;}

 return c;
}

//печать
template <int k>
void print(int d[k][2*k]){
   for(int i=0; i<k; i++){
       for(int j=0; j<2*k; j++){
           std::clog<<d[i][j];
    }
    std::clog<<std::endl;
   }
std::clog<<std::endl;

}

int main()
{
    const int k=3;

    //исходная матрица
    int b[k][k];

    for(int i=0; i<k; i++){
        for(int j=0; j<k; j++){
            std::cin>>b[i][j];
        }
    }


      //матрица, к которой дописана единичная
       int d[k][2*k];

          for(int i=0; i<k; i++){
             for(int j=0; j<2*k; j++){
                if(j<k) d[i][j]=b[i][j];
                else{
                   if(j-i==k) d[i][j]=1;
                    else d[i][j]=0;
                    }
                }
            }

    int y;

   //находим методом Гаусса обратную матрицу
    for(int i=0; i<k; i++){

        if(d[i][i] == 0) {
            //если по диагонали 0, то меняем строки
            /* Нужно сначала найти строку t >= i, для которой d[t][i] != 0 */
              for(int j=0; j<k; j++){
                  std::swap(d[i][j], d[i+1][j]);
                }
            }

         //если элемент на диагонали !=0 && !=1
         if(d[i][i] != 0 && d[i][i] != 1){
             //превращаем элемент по диагонали в 1
            y=d[i][i];
               for(int j=2*k-1; j>=0; j--){
                    d[i][j] = div_mod(d[i][j], y, k);
                  }
             }

         //проходим по строкам, кроме той, где получили 1 по диагонали
         //вычитаем из них строку, в которой получили 1 по диагонали,
         //умноженную на соответствующий коэффициент
         for(int h=0; h<k; h++){
              if(h!=i){
                  y=d[h][i];
                  for(int g=2*k-1; g>=0; g--){
                       d[h][g] = sub_mod(d[h][g], d[i][g]*y, k);
                 }
              }
         }

}

   print <k> (d);

    return 0;
}
